#pragma once

#include <string>
#include <queue>
#include <vector>

#include "../../../domain/models/Card.h"
#include "../../../domain/models/CardsCollection.h"

namespace Views {
	namespace Helpers {
		namespace Console {
			namespace CardsHelper {
				template <typename T>
				void printCards(T& cards);

				Cards::PlayerCard* pickPlayerCard(Cards::PlayersCards& cards);
				Cards::WeaponCard* pickWeaponCard(Cards::WeaponsCards& cards);
				Cards::RoomCard* pickRoomCard(Cards::RoomsCards& cards);

				Cards::PlayerCard* pickPlayerCard(Cards::PlayersCards& cards, std::string);
				Cards::WeaponCard* pickWeaponCard(Cards::WeaponsCards& cards, std::string);
				Cards::RoomCard* pickRoomCard(Cards::RoomsCards& cards, std::string);
			};
		}
	}
}
